package com.aleyn.router.core

/**
 * @author: Aleyn
 * @date: 2023/7/17 12:16
 * @desc: 导航过程的回调接口。
 *
 * 通过实现此接口，可以监听导航过程中的关键事件，例如：
 * - 路由未找到
 * - 路由已找到
 * - 成功到达目标
 * - 导航被拦截器中断
 */
interface NavCallback {

    /**
     * 当路由表中没有找到与导航地址匹配的路由时调用。
     *
     * @param navigator 当前的导航器实例。
     */
    fun onLost(navigator: Navigator) {}

    /**
     * 当在路由表中成功找到与导航地址匹配的路由时调用。
     *
     * @param navigator 当前的导航器实例。
     */
    fun onFound(navigator: Navigator) {}

    /**
     * 当导航成功完成，即成功跳转到目标页面后调用。
     *
     * @param navigator 当前的导航器实例。
     */
    fun onArrival(navigator: Navigator) {}

    /**
     * 当导航被拦截器中断时调用。
     *
     * @param navigator 当前的导航器实例。
     */
    fun onInterrupt(navigator: Navigator) {}

}